/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import dao.DAOCadastroLei;
import dao.exceptions.NonexistentEntityException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.Lei;
import negocio.Negocio;
import negocio.NegocioCadastroLei;

/**
 *
 * @author Jackson
 */
public class ControladorRevogarLei implements Controlador {

    private UI ui;
    private Negocio negocioCadastroLei;

    public ControladorRevogarLei() {
        negocioCadastroLei = new NegocioCadastroLei();
        negocioCadastroLei.setDAO(new DAOCadastroLei());
    }

    public UI getUI() {
        return ui;
    }

    public void setUI(UI ui) {
        this.ui = ui;
    }

    public void inserir(Object o) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void alterar(Object o) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void excluir(Object o) {
        throw new UnsupportedOperationException("Não foi implementado!");
    }

    public void pesquisar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void pesquisar(Object o) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void revogar(Lei revoga, Lei revogada) {
        List lRevoga = negocioCadastroLei.pesquisar(revoga);
        List lRevogada = negocioCadastroLei.pesquisar(revogada);
        Lei lrga = null;
        Lei lrgada = null;

        if(!lRevoga.isEmpty()) {
            lrga = (Lei) lRevoga.get(0);
        }
        if(!lRevogada.isEmpty()) {
            lrgada = (Lei) lRevogada.get(0);
        }

        if(lRevoga != null && lRevogada != null) {
            lrgada.setNumeroLeiRevoga(lrga.getNumeroLei());
            try {
                negocioCadastroLei.alterar(lrgada);
            } catch (NonexistentEntityException ex) {
                ui.exibirMensagemErro("Não foi possivel revogar a lei.");
            } catch (Exception ex) {
                ui.exibirMensagemErro("Não foi possivel revogar a lei.");
            }
        } else {
            ui.exibirMensagemErro("Não foi possivel revogar a lei.");
        }
    }

    public void setJanelaResultado(JanelaResultadoPesquisa janelaResultadoPesquisa) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void setJanelaModificarLei(JanelaModificarLei janelaModificarLei) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public boolean numeroLeiUnica(String numeroLei) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public boolean existObject(Lei l){
        return negocioCadastroLei.existObject(l);
    }

}
